package com.dq.service.sys.user;

import com.dq.controller.in.user.WxUserQuery;
import com.dq.domain.sys.user.user.base.SysUser;
import com.dq.domain.sys.user.user.centre.UserCard;
import com.dq.exception.customException.AdminException;
import com.dq.controller.in.request.WxUserAddRequest;
import com.dq.domain.sys.user.user.WxUser;

import java.util.List;
import java.util.Map;

/**
 * @author liuhui
 * @date 2019/12/2 0002 14:31:57
 */
public interface WxUserService {
    List<Long> statisticsPayUserNum(Long lastTimestamp);

    List<WxUser> wxUserList(WxUserQuery wxUserQuery) throws AdminException;
    Long wxUserCount(WxUserQuery wxUserQuery) throws AdminException;

    public List<String> getWxUserLable(SysUser wxUser);
    public List<Map<String, Object>> getWxUserLableObj(SysUser wxUser);
    public List<UserCard.Vo> getWxUserCardList(WxUser wxUser, Long orgId);

    public void initObject(WxUserAddRequest wxUserAddRequest, Long userId) throws AdminException;

    public WxUser save(WxUser wxUser) throws AdminException;
    public WxUser update(WxUser wxUser, boolean isCount) throws AdminException;
    public void verifyObject(WxUser wxUser) throws AdminException;

}
